home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / ldb.zip / SDATA.HPP < prev    next >
C/C++ Source or Header  |  1991-10-18  |  1KB  |  63 lines

  1. /*
  2.  
  3.     sdata.hpp
  4.     10-18-91
  5.     Streamable Data: Loose Data Binder v1.4
  6.  
  7.     Copyright 1991
  8.     John W. Small
  9.     All rights reserved
  10.  
  11.     PSW / Power SoftWare
  12.     P.O. Box 10072
  13.     McLean, Virginia 22102 8072 USA
  14.  
  15.     John Small
  16.     Voice: (703) 759-3838
  17.     CIS: 73757,2233
  18.  
  19. */
  20.  
  21. #ifndef SDATA_HPP
  22. #define SDATA_HPP
  23.  
  24. #ifndef SBINDER_HPP
  25. #include "sbinder.hpp"
  26. #endif
  27.  
  28.  
  29. class   SData;
  30. typedef SData * SDatA;
  31. #define SDatA0 ((SDatA)0)
  32.  
  33. #define ID_SData    2
  34. #define DID_Generic    0
  35. #define DID_String    1
  36.  
  37. class SData : Streamable {
  38.     unsigned sizeofData, Did;
  39.     int dup;
  40.     voiD D;
  41. protected:
  42.     void construct(voiD D, unsigned sizeofData,
  43.         unsigned Did, int dup);
  44. public:
  45.     STREAMABLE(SData,ID_SData,
  46.         Streamable);
  47.     SData(voiD D = voiD0,
  48.         unsigned sizeofData = 0,
  49.         unsigned Did  = DID_Generic,
  50.         int dup = 1)
  51.         : Streamable(UNIQUE_STREAMABLE,
  52.             ID_CLASS)
  53.         { construct(D,sizeofData,Did,dup); }
  54.     SData(char * s, int dup = 1);
  55.     operator voiD() { return D; }
  56.     unsigned SizeofData()
  57.         { return sizeofData; }
  58.     unsigned DID() { return Did; }
  59.     ~SData() { if (dup) delete D; }
  60. };
  61.  
  62. #endif
  63.